package main

import (
	"os"
	"path"
	"runtime"
)

func main() {
	//DirFS 为以目录 dir 为根的文件树返回一个文件系统（一个 fs.FS）。
	//
	//请注意，DirFS("/prefix") 仅保证它对操作系统进行的 Open 调用将以 "/prefix" 开头：DirFS("/prefix").Open("file") 与 os.Open 相同 （“/前缀/文件”）。 因此，如果 /prefix/file 是指向 /prefix 树外部的符号链接，那么使用 DirFS 不会像使用 os.Open 那样停止访问。 因此，当目录树包含任意内容时，DirFS 不是 chroot 样式安全机制的通用替代品。

	exePath := getCurrentAbPathByExecutable()

	os.DirFS(exePath)
}

func getCurrentAbPathByExecutable() string {
	//exePath, err := os.Executable()
	//if err != nil {
	//	log.Fatal(err)
	//}
	//symlinks, _ := filepath.EvalSymlinks(filepath.Dir(exePath))
	//
	//return symlinks

	var abPath string
	_, filename, _, ok := runtime.Caller(0)
	if ok {
		abPath = path.Dir(filename)
	}
	return abPath
}
